package com.itheima.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;

@Controller
public class FileUploadController {

    @RequestMapping("/fileupload")
    public String fileUpload(MultipartFile file,
                             MultipartFile file1,
                             MultipartFile file2,
                             HttpServletRequest request) {
        try {
            System.out.println("file upload is running " + file);
            System.out.println(file.getSize());
            System.out.println(file.getBytes().length);
            System.out.println(file.getContentType());
            // System.out.println(file.getInputStream());
            //这个是形参名称
            System.out.println(file.getName());
            //原始名称
            System.out.println(file.getOriginalFilename());
            System.out.println(file.getResource());
            System.out.println(file.isEmpty());
            //首先判断是否是空文件，也就是存储空间占用为0的文件
            if (!file.isEmpty()) {
                //如果大小在范围要求内正常处理，否则抛出自定义异常告知用户（未实现）
                //获取原始上传的文件名，可以作为当前文件的真实名称保存到数据库中备用
                String filename = file.getOriginalFilename();
                //可以根据需要，对不同种类的文件做不同的存储路径的区分，修改对应的保存位置即可
                String realPath = request.getServletContext().getRealPath("/images");
                //保存文件的方法，指定保存的位置和文件名即可，通常文件名使用随机生成策略产生，避免文件名冲突问题
                file.transferTo(new File(realPath, file.getOriginalFilename()));
            }
            //测试一次性上传多个文件
            if (!file1.isEmpty()) {
                String fileName = file1.getOriginalFilename();
                //可以根据需要，对不同种类的文件做不同的存储路径的区分，修改对应的保存位置即可
                String realPath = request.getServletContext().getRealPath("/images");
                file1.transferTo(new File(realPath, file1.getOriginalFilename()));
            }
            if (!file2.isEmpty()) {
                String fileName = file2.getOriginalFilename();
                String realPath = request.getServletContext().getRealPath("/images");
                file2.transferTo(new File(realPath, file2.getOriginalFilename()));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "page.jsp";
    }
}
